程式員的個人性格
‧本文由 July fish 分享 ‧
2005-04-02 ‧
顯示 5,198 次
‧
轉寄 12 次
‧
短評 10 篇
‧
提要:軟體開發是一個“以人的智力為加工原料”的工程活動,在開發過程中會不斷的對智力和性格作研究。需要注意20/80原則,並不是最勤奮的才是最優秀的。程式設計的工作難以檢查,是否成為高手和個人性格有關。你無法改變智力,但可以改變性格。在軟體開發者的成長過程中,EQ還是佔主要因素。- 聰明和謙遜
- 一個人越謙虛進步越快,承認自己的無知才會去正視和彌補自己的錯誤。理解程式需要通常很強的對細節把握和理解能力,這對程式員的智力有很大要求,但是很好的利用聰明要比你到底有多聰明要重要的多。有個程式員需要也需要謙虛,用謙虛去促進自己的智慧,使得自己更加聰明。這是軟體開發者的兩個基本質素要求,它們互相依賴促進,有時候也互相排斥,把握好自己的才智和謙虛就能更大程度提高能力。
- 也許某些事情很麻煩和困難,我們這時就需要使用一些方法去聰明的解決它們。比如:採用良好的程式風格便於理解、採用分解的辦法使複雜問題簡單化、多進行評審和測試,多和別人討論和關注軟體品質問題、儘量使用高度抽象的思維使問題一般化,提高重用率減少工作量、如果問題走進一個“死胡同”不妨和杯咖啡放松情緒,或和別人交談交流觀點,這是解決鑽牛角尖的好方法。
- 好奇心
- 一旦你認為自己理解程式的能力是有限的,而且你意識到,進行有效程式設計是補償自己能力的方法時,你就開始了你職業生涯中漫長的探索過程。對技術的好奇很重要,否則你將在知識爆炸的時代迅速落伍。別在忙碌的工作或瑣事中,失去了對學術,自然和生活的好奇心和激情。我們可以在:
- 開發過程中建立自我意識。
- 透過在開發中有意識的可以使用進行新技能的鍛煉,多對開發工程進行觀察,和學習其他解決方法,這樣就對整個項目有很強的把握 能力,甚至可以帶領整個團隊走向更好的方向。如果你現在做的是市場前景很好的工作,那也意味著工作中的某些技術可能會很快被淘汰,注意保持好奇心和創造力。
- 實驗。
- 了解程式設計的一個有效方法就是對程式設計和開發過程做實驗。你可以編寫一個程式並觀察它是如何工作的,調試器裏跟蹤程式的執行把握它的特性。 用個小程式去檢驗一個不太了解的概念,這對增進理解有非常大的幫助。或者用一個短程式,去試圖製造一些錯誤,透過錯誤去學習。錯誤不是罪過,沒有從錯誤 中學到什麼那才是罪過。
- 閱讀解決問題的有關方法。
- 解決問題是軟體開發過程核心的活動。一個奇怪的現象:人們通常不能從自己面臨的問題找出解決的方法,即使這個方法很簡單。
- 行動前先做好分析和設計。
- 儘管實踐和分析設計過程有很大的矛盾,但是好的分析會避免讓你過早走向一個錯誤的方向,好的設計可以避免混亂。
- 學習成功或失敗項目的開發經驗。
- 學習程式設計的好方法是向一些優秀的程式員學習。應該要注重項目的戰略思想,把握項目中解決關鍵難點的戰術。任何成熟的 科學,都是透過解決問題發展起來的。這些問題通常被看一些被良好解決的例子,並可為將來工作做指導。(這可能也是目前很多公司注重工作經驗的原因吧?) 我們應該努力對別人工作存在的問題做研究,學習別人的無論成敗的解決辦法都是很有意義的。多拿自己的代碼和比你優秀人的代碼做比較,看看你們間有什麼異 同?為什麼會有這樣的差異?誰的更好?為什麼?也要多讓自己的代碼讓別人評價,這樣可以提高自己的程式品質。
- 閱讀手冊,書籍和期刊。
- 手冊中往往對帶有些可以直接調用的例程,這對我們研究和解決具體問題有很大幫助。書籍中往往是介紹系統理論,多閱讀可以提高專業 能力;期刊中常常包含著流行的技術和觀點可以開闊眼界。
- 透過在開發中有意識的可以使用進行新技能的鍛煉,多對開發工程進行觀察,和學習其他解決方法,這樣就對整個項目有很強的把握 能力,甚至可以帶領整個團隊走向更好的方向。如果你現在做的是市場前景很好的工作,那也意味著工作中的某些技術可能會很快被淘汰,注意保持好奇心和創造力。
- 誠實
- 程式設計生涯成熟的部分標志是堅持誠實。通常是:不假裝自己是高手、樂於承認錯誤、尊重編譯器的警告、對程式有清晰的了解,而不是編譯看其是否有錯、提高實際狀態報告、提供實際方案評估,在上級面前堅持自己的意見。你最好假裝自己知之甚少,聽別人的解釋,向他們學習,並且評估他們是否了解其正在討論的東西:)
- 你應該對自己能力做某種程度評估,認為自己完美是一個不妙的信號。錯誤正如潮流一樣是一個複雜的活動,如果你過去沒犯過錯誤,那麼沒有人會將錯誤歸咎於你。所以正視自己的錯誤。當你並不了解程式時,編譯運行並不是解決問題的方法。測試是證明錯誤的存在,而不是保證沒有錯誤。如果不能深入理解程式,就不能深入測試。依據事實給出準確的狀態報告,不能欺騙自己和別人,這是充分合作的前提。不能因為壓力而否定符合規律的做法--這個項目需要10人月,要用5人月完成除非降低性能或其他做法--準確的向上司說明情況。
- 交流與合作
- 真正優秀的程式員應學會怎樣和別人工作和娛樂。真正閱讀你寫出的程式是人,而不是給電腦--注意代碼的可讀性。絕多數高水平的程式員堅持自己代碼的可讀性,並抽出充足時間這麼做。對程式員能力的界定標準:
- 初學者
- 是能使用一種語言基本能力的程式員,他能使用例程、循環、條件語句或其他許多語言特徵。
- 中間者
- 有使用許多語言的能力,並且至少非常熟悉某一種語言。
- 專家
- 對其語言或環境或這二者有很深的造詣。這種級別的程式員對公司是有價值的,而且有些程式員往往就停留在這個水平上。
- 大師
- 有著專家那樣的專業知識,並且意識到程式設計隻是15%和電腦交流,其餘85%是和人打交道。一般程式員只有30%時間或更少。而且大師注重給人看的清晰易懂的代碼,並注意建立有關文檔。
- 不強調可讀性的高水平代碼者可能停留在級別3上面。並且根據經驗,編寫不可讀代碼的主要原因是:代碼品質差或是編寫者自己並不能完整地理解自己的代碼。當你知道自己的水平後,不必內疚和自愧。在你知道如何提高水平後,你倒應該為自己停留在初學者或專家水平上有多長時間而內疚。
- 是能使用一種語言基本能力的程式員,他能使用例程、循環、條件語句或其他許多語言特徵。
- 創造力和紀律
- 雖然一些有創造力的程式員將各種標準和約定視為對其創造力的阻礙,但是沒有這些約束項目實現是不可能的。不要在無關緊要的領域建立約定,應該在值得的地方發揮你的創造力。一個傑出的程式員需要遵守許多規則。如果編碼之前不分析需求就設計,那麼你就學不到項目的許多東西,那樣工作就像小孩畫畫而不是藝術品。
- 懶惰
- 懶惰的三種形式:
- 1 拖延自己討厭的工作
- 2 迅速解決討厭的任務以擺脫任務
- 3 寫一個工具來完成討厭的工作解脫自己。
- 當你不是透過玻璃看問題的時候,你就看到了懶惰的另一方面。“趕著做”是一種多餘和沒有必要的“努力”。有效的工作最重要的現象是人們在思考種往往顯得冷靜而不忙。一個一直很忙碌的程式員不是好程式員,因為他並不是在使用對於他來說最有價值的工具和頭腦。
- 並不是你想象中起作用的性格
- 堅持
- 這是一筆財富也是不利的條件。你可以稱它為頑固或者堅強,這完全取決於應用它的場合。在多數情況下,軟體開發的“堅持”就是頑固的意思!當你遇到新問題時候,你再固執己見並不是好事。你應該迅速適應它,或原方案並不起作用時,學會用另一種解決方法。調試中,當你發現一個困擾你4個小時之久的錯誤時,你一定感到非常滿意。但是實際上,如果你在一段時間--通常為15分鐘沒有取得任何進展時,你應該放棄找錯。用你的潛意識去思考問題,嘗試用別的方法解決問題,甚至重寫厭煩的代碼段。和電腦錯誤做鬥爭時不明智的,你應該儘量避免它們。知道在時候需要放棄時困難的,但是必須面對一個問題:當你覺得自己受挫折時,是否考慮嘗試其他不同的方法。
- 經驗
- 過於依賴經驗會導致知識的落伍。今天的經驗必須為明天的工作服務。如果不在過去經驗中去歸納總結出一些有價值的原則或規律並改變自己去適應它們,那麼經驗也將一文不值。如果你的經驗還是停留在上一次戰鬥而不是下一次,也不因時間做出應變,那麼經驗更像是一個阻礙。此外,錯誤的經驗往往得不到客觀的評價。錯誤的經驗可以讓你得出重要的不同結論,學習其他人的錯誤經驗是一個好方法--你更可以對它做客觀的檢查。其他領域有成功經驗的專業人員往往使人放心,而在軟體開發中,知識更新迅速使得此領域中“經驗”處於一個奇怪的地位。為了使自己有所價值,你必須緊跟潮流,對於年輕求知欲旺盛的程式員在這點有優勢,而有些年老的程式員認為自己有所資格而厭倦一年接一年都要證實自己的能力。如果你已工作了10年,你得到了10年的經驗未必是真正的經驗--你如果堅持不斷地學習,你就能得到經驗,但如果你並不想學到什麼,不管多少年你也學不到什麼。
- 程式設計狂
- 如果你還沒有至少在一個相同的項目上花費一個月的時間--一天工作 16 個小時;為了發現你的程式中最後一個錯誤睡眠中你也念念不忘它,你接連幾天沒日沒夜地工作--即使你所編的程式並不複雜,那麼你可能不會意識到程式設計中有某種令人興奮的東西。
--- Edward Yourdon- 這種對程式設計的癡迷純粹是胡鬧,並且幾乎注定要失敗。但是那些通宵程式員使你覺得他們是世界上最好的程式員,但是隨後你不得不花費幾周的時間來修正你在這短時間的輝煌中所帶來的錯誤,你可能對程式設計非常熱愛,但是你應能冷靜地處理這個問題。
- 這是一筆財富也是不利的條件。你可以稱它為頑固或者堅強,這完全取決於應用它的場合。在多數情況下,軟體開發的“堅持”就是頑固的意思!當你遇到新問題時候,你再固執己見並不是好事。你應該迅速適應它,或原方案並不起作用時,學會用另一種解決方法。調試中,當你發現一個困擾你4個小時之久的錯誤時,你一定感到非常滿意。但是實際上,如果你在一段時間--通常為15分鐘沒有取得任何進展時,你應該放棄找錯。用你的潛意識去思考問題,嘗試用別的方法解決問題,甚至重寫厭煩的代碼段。和電腦錯誤做鬥爭時不明智的,你應該儘量避免它們。知道在時候需要放棄時困難的,但是必須面對一個問題:當你覺得自己受挫折時,是否考慮嘗試其他不同的方法。
- 習慣
- 好的習慣起作用是由於你為一個程式員所作的大部分事情是你在無意識中所完成的。成為某方面好的或差的程式員,主要是靠你自己的所作所為。你所作所為習慣,決定了你的程式設計品行。最終,你的習慣好壞決定了你是否能成為一位好的程式員。當你開始學習某一件事時,你應按正確的方式學好它。當你開始學時,你已對其進行了思考,並且你可在正確或錯誤的途徑間作出輕易的選擇。在你作過一段時間後,你對你所作的不太注意,此時“習慣的力量”會開始起作用。確保起作用的習慣是你所希望的。
- 一個人越謙虛進步越快,承認自己的無知才會去正視和彌補自己的錯誤。理解程式需要通常很強的對細節把握和理解能力,這對程式員的智力有很大要求,但是很好的利用聰明要比你到底有多聰明要重要的多。有個程式員需要也需要謙虛,用謙虛去促進自己的智慧,使得自己更加聰明。這是軟體開發者的兩個基本質素要求,它們互相依賴促進,有時候也互相排斥,把握好自己的才智和謙虛就能更大程度提高能力。
- 你的個人性格直接影響你編寫電腦程式的能力。
- 最有明顯作用的性格為:謙虛、好奇心、誠實、創造性和紀律,還有文明的“懶惰”。
- 高級程式員的發展和產生與天才並無多大聯系,任何事情都和個人的發展有關。
- 令人吃驚的是,小聰明、經驗、堅持和慾望既可幫助你也能妨礙你。
- 許多程式員不主動去吸收新資訊和新技術,而是靠偶然地上穫得一些新資訊,如果你抽出少量時間學習別人的程式設計經驗,過一段時間後,你將在你的同行中脫穎而出。
- 好的性格對養成良好習慣有很大影響。為了成為一位高水平的程式員,你應養成良好的習慣,其餘的就會隨之而來。
0.00
0 votes
1
3
5
7
9
請按數字進行評分
請以1~9的評分代表由負面到正面的感受,統計數據將決定資訊的參考價值。謝謝!
|
關鍵字建檔說明
|
顯示/隱藏
列印
列印提示
- 您可以點擊右方的「顯示/隱藏」鏈結來隱藏不相關的內容。
- 內容確認後,點擊右方的「列印」鏈結或瀏覽器之列印鍵即可。
- 完成後,顯示被隱藏的內容即可繼續瀏覽。
◎附加檔案 中的附件有三種不同的呈現方式,均限會員使用:
- 圖檔類型 以縮圖方式呈現,點縮圖後會浮現原尺寸圖檔!
- 檔案類型 以檔名方式呈現,建議先另存新檔,再開啟瀏覽!
- FLV類型 支援線上瀏覽模式,請按檔名前方的圓型箭頭;按檔名則是另存新檔。
- 檔案開不了怎麼辦?請參考「Office 檔案開不了怎麼辦?」
- 郵件容量超出 50MB 時,為了節省網站營運成本,僅提供下列會員使用:
bita1201
於 2005-04-02 08:32:49 說 做人難--- 做程式員更難--- | |
惠
於 2005-04-02 09:27:00 說 承認自己的無知才會去正視和彌補自己的錯誤。 ... 最近一個白人同事用了六百多行寫身分證字號檢驗程式. 另一個印度同事建議他改用我只花十行寫的, 他卻看都不看一眼. 難怪他負責的部分老是出問題. 謙虛太重要了! | |
芝姬
於 2005-04-02 11:22:34 說 自以為是的很多 會承認自己的無知才會去正視和彌補自己的錯誤。 | |
小三
於 2005-04-02 18:12:17 說 學習新知很重要 | |
小蜜糖
於 2005-04-02 20:52:11 說 了解自己才會進步 | |
挑戰= 一天過完又一天 =
於 2005-04-04 16:15:20 說 >>最近一個白人同事用了六百多行寫身分證字號檢驗程式 他是太強了(反諷)還是太閒了... | |
puuj
於 2005-04-05 14:05:29 說 "修身、齐家、治国、平天下" 程式员也要"先修身,后写程式" | |
Darryl= 來~來~來~給它繼系~搖~下企 =
於 2005-04-05 14:46:43 說 滿的水杯永遠都無法在裝下任何一滴水.... 要即時放空自己 才能接納他人的建議 | |
feiaaaaa
於 2005-06-06 14:56:56 說 做程式員要會吸星大法 | |
point
於 2007-03-11 10:04:35 說 據說越怪咖越厲害 | |